package com.ruoyi.biz.service.impl;

import java.util.*;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.biz.mapper.BizTagMapper;
import com.ruoyi.biz.domain.BizTag;
import com.ruoyi.biz.service.IBizTagService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.util.CollectionUtils;

/**
 * 游戏标签Service业务层处理
 * 
 * @author jason
 * @date 2025-10-31
 */
@Service
public class BizTagServiceImpl implements IBizTagService 
{
    @Autowired
    private BizTagMapper bizTagMapper;

    /**
     * 查询游戏标签
     * 
     * @param id 游戏标签主键
     * @return 游戏标签
     */
    @Override
    public BizTag selectBizTagById(Long id)
    {
        return bizTagMapper.selectBizTagById(id);
    }

    /**
     * 查询游戏标签列表
     * 
     * @param bizTag 游戏标签
     * @return 游戏标签
     */
    @Override
    public List<BizTag> selectBizTagList(BizTag bizTag)
    {
        return bizTagMapper.selectBizTagList(bizTag);
    }

    /**
     * 新增游戏标签
     * 
     * @param bizTag 游戏标签
     * @return 结果
     */
    @Override
    public int insertBizTag(BizTag bizTag)
    {
        bizTag.setCreateTime(DateUtils.getNowDate());
        return bizTagMapper.insertBizTag(bizTag);
    }

    /**
     * 修改游戏标签
     * 
     * @param bizTag 游戏标签
     * @return 结果
     */
    @Override
    public int updateBizTag(BizTag bizTag)
    {
        bizTag.setUpdateTime(DateUtils.getNowDate());
        return bizTagMapper.updateBizTag(bizTag);
    }

    /**
     * 批量删除游戏标签
     * 
     * @param ids 需要删除的游戏标签主键
     * @return 结果
     */
    @Override
    public int deleteBizTagByIds(String ids)
    {
        return bizTagMapper.deleteBizTagByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除游戏标签信息
     * 
     * @param id 游戏标签主键
     * @return 结果
     */
    @Override
    public int deleteBizTagById(Long id)
    {
        return bizTagMapper.deleteBizTagById(id);
    }

    /**
     * 查询游戏标签树列表
     * 
     * @return 所有游戏标签信息
     */
    @Override
    public List<Ztree> selectBizTagTree()
    {
        List<BizTag> bizTagList = bizTagMapper.selectBizTagList(new BizTag());
        List<Ztree> ztrees = new ArrayList<Ztree>();
        for (BizTag bizTag : bizTagList)
        {
            Ztree ztree = new Ztree();
            ztree.setId(bizTag.getId());
            ztree.setpId(bizTag.getPid());
            ztree.setName(bizTag.getName());
            ztree.setTitle(bizTag.getName());
            ztrees.add(ztree);
        }
        return ztrees;
    }

    @Override
    public List<BizTag> listByIds(Collection<Long> collect) {
        if (CollectionUtils.isEmpty(collect)) {
            return Collections.emptyList();
        }
        return bizTagMapper.listByIds(collect);
    }
}
